Increasingly computer software packages and programming languages have displaced traditional methods of producing images, video, and graphic design layouts. They have also been used to create and maintain web pages on the Internet. A multitude of programming languages and software packages have been created for such purposes. However, these programming languages and software packages are often highly specialized and typically require that the information to be presented be formatted in a specific language. This is especially true for the visual presentation of information on mediums such as Internet web pages.
For anything other than unformatted ASCII text, Internet web pages can typically only be viewed using software packages that are capable of interpreting World Wide Web specific languages such as HTML, Java, and ASP. Similarly, video typically must be streamed over the Internet through programs such as Real Player and QuickTime. Many such World Wide Web specific languages and Internet programs are built upon proprietary code base. Therefore, Internet web pages created using such programs and products can only be seen when specialized software, such as an Internet browser or other form of interpreter, is invoked. All of this leads to the nearly universal requirement that information intended for display on the Internet must be stored in a specific language.
One of the consequences of the Internet language requirement is that content providers that want to present their information across multiple formats typically must store their information in several different ways so that the various types of different devices that the content provider wants to support will be capable of displaying the information. However, storage of the same content in multiple different languages can be time consuming and expensive for content providers. Furthermore, in the rapidly advancing field of Internet web page design and display, it is not always clear if one particular format will be able to reach all of the intended user base or if that format will become obsolete in the future. For example, if a content provider makes a substantial investment in coding web content in ASP and/or HTML, the content provider is at risk if HTML standards or the ASP code changes in the future. If the HTML or ASP standard changes, then the content provider must make an additional substantial investment in time and resources updating all of the content so that it is compatible with the new HTML or ASP standard. Also newer languages can emerge either to support specific devices (e.g. Pocket C for Palm handheld devices), or for more general application (e.g., such as PHP, see www.php.net). Updating content to display in new languages is another expense that must be incurred by content providers.
In many cases, web pages and other visual presentations are coded in such a way that both the information to be displayed and the order of the information to be display are stored in a single file. Everything in such a file is then considered to be static, because nothing else can be inserted into the file or changed, unless the file is opened and altered. Static files that contain all the information for a web page can be generated in three different ways. First, they can be hand coded. Hand coding involves manually writing out lines of code containing the data and instructions on how to order that data. Hand coding is very labor intensive and an unsatisfactory approach for anything other than the simplest web page designs. Second, static files that code for web pages can be generated using a specialized editor. Such specialized editors have the advantage over hand coding in that they can be used to introduce many programming shortcuts, such as the ability to fill in commonly used lines of code on command. Thus, specialized editors are advantageous for hand coding because they speed up the process of web page development. However, specialized editors have two drawbacks. Like hand coding, they require that the user be familiar with the commands of the web specific code (e.g. HTML, Java, etc.). Second, they have the drawback described earlier that web pages produced by such editors are based in a specific web language and are therefore at risk of becoming obsolete when the web language is revised.
The third approach to creating static files that code for web pages is the use of What You See Is What You Get (WYSIWYG) interfaces to generate the web page. Such platforms (e.g., Microsoft Frontpage) use a graphical user interface to allow users to place information onto a canvas using point and click or drag and drop methods. In this approach, specially designed functions arc provided in order to arrange items on a page and conduct other tasks. These functions generate code containing the data, its attributes, and the order the data is to be presented so that the user does not need to know how to code in order to create the visual presentation. The code is then saved as a static file as in the hand coding and specialized editor approaches. While the WYSIWYG approach removes the need to train users so that they can program in web specific programming languages, the approach still has the inherent drawback of generating static web files.
The creation of a single static file for each layout of information (e.g., web page) is particularly unsatisfactory in cases where the visual format of the layout is a constant but the information being displayed changes. In such situations, it becomes redundant from a data storage perspective and repetitive from a labor standpoint to create the same static file over and over with only the actual information in the file changing. An examples of such an instances is a multi-page photo gallery where the frames and control functionality is the same on each page and the only thing that changes is the images being displayed.
To address the situation where the overall look of a presentation, such as a collection of web pages, remains the same on each page but the information on each page changes, templates were developed. A template is a standard ordering and layout of information that does not contain the information to be inserted, only a placeholder where each piece of information can be inserted.
To illustrate the advantages of a template, consider the case of a hypothetical online store. The store name appears on the top of each web page associated with the online store. Further, a list of links to each section in the store appears on the left side of the pages associated with the store. A display capable of depicting twelve products, with an order of four products across and three products down, appears in the center of each page associated with the store. A template can be created for such an arrangement, but the template will not contain the product information because such information (the products viewed in the central display) will depend on what section of the store is being displayed. Thus, the template and the data (the products) presented by the template are stored in two different locations. The use of a template in this illustration obviates the need to produce a large number of web pages, each displaying a different sent of products.
The use of templates then splits a presentation (e.g., collection of web pages) into two separate locations, one for the template and one for the data displayed by the template. The template is typically stored as a file and the information that is presented using the template is typically stored in a database. The use of templates is referred to as a dynamic solution because the information inserted into the template can change on a dynamic basis (e.g., as the user selects different sections of the online store or different web pages within the presentation, etc.).
Dynamic approaches to web presentation design eliminates the need to insert information into each and every file associated with the presentation, but it does not remove the dependency on specialized code to order the layout of data in a visual medium such as the Internet. For example, if the goal is to display information in an identical manner on two different platforms, platform specific code must be written for each platform in order to achieve the goal.
Given the above background, what is needed in the art are systems and methods for generating presentations that can be presented on any desired target platform and in any desired target language without modifying the presentation.
Discussion or citation of a reference herein will not be construed as an admission that such reference is prior art to the present invention.